home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / dev / obero / ScrNotifyIntrf.lha / ScreenNotify.mod next >
Encoding:
Text File  |  1995-03-27  |  3.9 KB  |  130 lines

  1. (*------------------------------------------
  2.  
  3.   :Module.      ScreenNotify.mod
  4.   :Author.      Albert Weinert  [awn]
  5.   :Address.     Adamsstr. 83 , 51063 Köln, Germany
  6.   :EMail.       a.weinert@darkness.gun.de
  7.   :Phone.       +49-221-613100
  8.   :Revision.    R.1
  9.   :Date.        27-Mar-1995
  10.   :Copyright.   Albert Weinert
  11.   :Language.    Oberon-2
  12.   :Translator.  AmigaOberon V3.20, Oberon-A 1.5
  13.   :Contents.    Interface file for screennotify.library V1
  14.   :Remarks.     Useable with AmigaOberon and Oberon-A
  15.   :History.     .1     [awn] 27-Mar-1995 : Erstellt
  16.  
  17. --------------------------------------------*)
  18.  
  19. (* <*IF OberonA THEN*> $IF OberonA *)
  20.  
  21. (*
  22. <* STANDARD- *> <* INITIALISE- *> <* MAIN- *>
  23. <*$ CaseChk-  IndexChk- LongVars+ NilChk-  *>
  24. <*$ RangeChk- StackChk- TypeChk-  OvflChk- *>
  25.  
  26. *)
  27.  
  28. (* <* ELSE *> $ELSE *)
  29.  
  30. (* $CaseChk-  $NilChk-  *)
  31. (* $RangeChk- $StackChk- $TypeChk-  $OvflChk- *)
  32.  
  33. (* <*END*> $END *)
  34.  
  35. MODULE ScreenNotify;
  36.  
  37. IMPORT
  38.   e := Exec,
  39.   (* <*IF OberonA THEN*> $IF OberonA *)
  40.   Kernel,
  41.   (* <*END*> $END *)
  42.   I := Intuition;
  43.  
  44. CONST
  45. (* Name and version *)
  46.   libName    *= "screennotify.library";
  47.   libVersion *= 1;
  48.   libMinimum *= 1;
  49.  
  50.  
  51. TYPE
  52.  
  53. (* Message sent to clients *)
  54.  
  55. (* <*IF OberonA THEN*> $IF OberonA *)
  56.   ScreenNotifyMessagePtr *= POINTER [2] TO ScreenNotifyMessage;
  57.   ScreenNotifyMessage *= RECORD [2];
  58.                            message * : e.Message;
  59. (* <* ELSE *> $ELSE *)
  60.   ScreenNotifyMessagePtr *= UNTRACED POINTER TO ScreenNotifyMessage;
  61.   ScreenNotifyMessage *= STRUCT ( message*: e.Message );
  62. (* <*END*> $END *)
  63.                            type  - : LONGINT;
  64.                            value - : e.APTR;
  65.                          END;
  66.  
  67. CONST
  68.  
  69. (* Values for snm_Type *)
  70.   typeCloseScreen   *= 0; (* CloseScreen() called, snm_Value contains *)
  71.                           (* pointer to Screen structure              *)
  72.   typePublicScreen  *= 1; (* PubScreenStatus() called to make screen  *)
  73.                           (* public, snm_Value contains pointer to    *)
  74.                           (* PubScreenNode structure                  *)
  75.   typePrivateScreen *= 2; (* PubScreenStatus() called to make screen  *)
  76.                           (* private, snm_Value contains pointer to   *)
  77.                           (* PubScreenNode structure                  *)
  78.   typeWorkbench     *= 3; (* snm_Value == FALSE (0): CloseWorkBench() *)
  79.                           (* called, please close windows on WB       *)
  80.                           (* snm_Value == TRUE  (1): OpenWorkBench()  *)
  81.                           (* called, windows can be opened again      *)
  82.  
  83. TYPE
  84. (* <*IF OberonA THEN*> $IF OberonA *)
  85.   ScreenClient *= POINTER [2] TO RECORD [2] END;
  86. (* <* ELSE *> $ELSE *)
  87.   ScreenClient *= UNTRACED POINTER TO STRUCT END;
  88. (* <*END*> $END *)
  89.  
  90. VAR
  91.   base : e.LibraryPtr;
  92.  
  93. PROCEDURE AddCloseScreenClient *{base, -30} ( screen{8}  : I.ScreenPtr;
  94.                                               msgPort{9} : e.MsgPortPtr;
  95.                                               pri  {0}   : SHORTINT ): ScreenClient;
  96. PROCEDURE RemCloseScreenClient *{base, -36} ( handle {8} : ScreenClient ): BOOLEAN;
  97.  
  98. PROCEDURE AddPubScreenClient   *{base, -42} ( msgPort{8} : e.MsgPortPtr;
  99.                                               pri    {0} : SHORTINT ): ScreenClient;
  100. PROCEDURE RemPubScreenClient   *{base, -48} ( handle {8} : ScreenClient ): BOOLEAN;
  101.  
  102. PROCEDURE AddWorkbenchClient   *{base, -54} ( msgPort{8} : e.MsgPortPtr;
  103.                                               pri    {0} : SHORTINT ): ScreenClient;
  104. PROCEDURE RemWorkbenchClient   *{base, -60} ( handle {8} :  ScreenClient ): BOOLEAN;
  105.  
  106. (* <*IF OberonA THEN*> $IF OberonA *)
  107.  
  108. (* <*$LongVars-*> *)
  109.  
  110. PROCEDURE* CloseLib (VAR rc : LONGINT);
  111.  
  112. BEGIN (* CloseLib *)
  113.   IF base # NIL THEN e.CloseLibrary (base) END;
  114. END CloseLib;
  115.  
  116. BEGIN (* Dos *)
  117.   base := e.OpenLibrary (libName, libMinimum);
  118.   Kernel.SetCleanup (CloseLib)
  119.  
  120. (* <* ELSE *> $ELSE *)
  121.  
  122. BEGIN
  123.   base :=  e.OpenLibrary(libName, libMinimum);
  124.  
  125. CLOSE
  126.   IF base#NIL THEN e.CloseLibrary(base) END;
  127.  
  128. (* <*END*> $END *)
  129. END ScreenNotify.
  130.